package cn.iocoder.yudao.module.dating.controller.admin.smallNote.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 小纸条新增/修改 Request VO")
@Data
public class SmallNoteSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15940")
    private Long id;

    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24471")
    @NotNull(message = "用户编号不能为空")
    private Long userId;

    @Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED, example = "M")
    @NotEmpty(message = "性别不能为空")
    private String sex;

    @Schema(description = "图片链接", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotEmpty(message = "图片链接不能为空")
    private String images;

    @Schema(description = "账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17554")
    @NotEmpty(message = "账号不能为空")
    private String account;

    @Schema(description = "账号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "账号不能为空")
    private String accountImg;

    @Schema(description = "说明", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotEmpty(message = "说明不能为空")
    private String desp;

    @Schema(description = "是否公开到广场", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否公开到广场不能为空")
    private Boolean pubFlag;

    @Schema(description = "是否高质量", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否高质量不能为空")
    private Boolean highFlag;

    @Schema(description = "浏览量", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "浏览量不能为空")
    private Long views;

    @Schema(description = "抽取次数", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "抽取次数不能为空")
    private Integer extractNum;

    @Schema(description = "抽取销毁次数 -1 不销毁", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "抽取销毁次数 -1 不销毁不能为空")
    private Integer extractDestroyNum;

    @Schema(description = "是否销毁", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否销毁不能为空")
    private Boolean destroyFlag;

    @Schema(description = "自动销毁时间")
    private LocalDateTime autoDestroyTime;

    @Schema(description = "审核状态", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "审核状态不能为空")
    private Boolean statusFlag;

    /**
     * 盒子类型
     */
    private String boxType;
    private String province;
    private String city;
    private String area;
    /**
     * 不通过原因
     */
    private String reason;
}